
const request = require('../../utils/request.js');
import {
  likeOrZanConference,
  joinActivity
} from '../../utils/getData.js'
import { launchAppCopy } from '../../utils/util.js';
const getopen = require('../../utils/maxutil.js');

const app = getApp();

Component({
  /**
   * 组件的属性列表
   */
  properties: {
    cardData: { //属性的名字
      value: null, //value表示默认值
      type: Object, //type是我们定义的类型
      observer: function (newVal, oldVal) {
        let currentData = newVal
        if (currentData.activityAddress) {
          this.setData({
            // 未加入局，未满员，无需申请,不是主办者
            ischong: currentData.conferenceType ==1 || !currentData.join && currentData.activityMaxNums != currentData.activityUserMap.length,
            // isConfirmJoin: currentData.activityJoinType == 0 && !currentData.join,
            isGerent: wx.getStorageSync('userId') == currentData.sponsorId,
           islike: currentData.guanzhu,
            activityJoinType: currentData.activityJoinType,
            //因第一次进来时在缓存内获取name会有延迟，因此放这在里
            userName: currentData.sponsorUser.userName, //发布者名称
            activityName: currentData.activityName, //局名称
            activityId: currentData.activityId, //局ID
            isIn: false, //进入卡片移动复原
            conferenceType:currentData.conferenceType, //1为大型活动，2为局

          })

        }
      }
    },
    isShowBottom: {
      type: Boolean,
      value: true,
      observer: function (newVal, oldVal) {}
    },
    // 卡片底部按钮组的宽度
    cardButonWidth: {
      type: String,
      value: "100%",
      observer: function (newVal, oldVal) {}
    },
    type: { //来源：1是局详情页，2个人主页, 3局汇总, 4局首页,5循环,6活动
      type: String,
      value: 0,
      observer: function (newVal, oldVal) {
        if (newVal != 0) {
          this.setData({
            source:newVal
          })

          if (newVal == 3) {
            console.log(app.globalData.conventionInfo)
            this.setData({
              cardTop: app.globalData.minModel ? '25vh' : '33vh',
              cardButtonTop: '18px',
              convention: app.globalData.conventionInfo
            })
          }
          if (newVal == 4) {
            this.setData({
              cardTop: '26vh',
              cardButtonTop: '26px'
            })
          }
          if (newVal == 5) {
            this.setData({
              cardTop: '1vh',
              cardButtonTop: '42rpx'
            })
          }
        }
      }
    },
  },

  ready: function (){
    
    var circleCount = 0;
      // 心跳的外框动画
      this.animationMiddleHeaderItem = wx.createAnimation({
        duration:1000,    // 以毫秒为单位
        /**
       * http://cubic-bezier.com/#0,0,.58,1  
       *  linear  动画一直较为均匀
       *  ease    从匀速到加速在到匀速
       *  ease-in 缓慢到匀速
       *  ease-in-out 从缓慢到匀速再到缓慢
       * 
       *  http://www.tuicool.com/articles/neqMVr
       *  step-start 动画一开始就跳到 100% 直到动画持续时间结束 一闪而过
       *  step-end   保持 0% 的样式直到动画持续时间结束        一闪而过
       */
        timingFunction: 'linear',
        delay: 100,
        transformOrigin: '50% 50%',
        success: function (res) {
        }
      });
      
      setInterval(function() {
        if (circleCount % 2 == 0) {
          this.animationMiddleHeaderItem.scale(1.15).step();
        } else {
          this.animationMiddleHeaderItem.scale(1.0).step();
        }
        
        this.setData({
          animationMiddleHeaderItem: this.animationMiddleHeaderItem.export()
        });
        
        circleCount++;
        if (circleCount == 1000) {
          circleCount = 0;
        }
      }.bind(this), 1000);

  },
  /**
   * 组件的初始数据
   */
  data: {
    source:'', //来源：1是局详情页，2个人主页, 3局汇总, 4局首页,5循环
    // code:'', //微信code
    isIn: false, //卡片 是否进来
    isIn1: false,
    isdestroy: false, //卡片 是否销毁
    start: "", //卡片 触摸开始的坐标点
    move: "", //卡片 触摸移动实时的坐标点
    num: "", //卡片 触摸结束的坐标点
    headerTop:getApp().globalData.headerTop, //导航距离顶部的距离

    cardTop: '', //卡片距离顶部的距离
    cardButtonTop: '', //卡片下方的按钮距离卡片的距离

    // activityImageRGB:'', //主题色值
    activityJoinType: 1, //是否需要申请 0无需申请，1申请

    joinpopover: false, //申请加入input弹框状态
    isConfirmJoin: false, //确认加入按钮状态
    isBounce: false, // 是否加入弹簧动画效果
    ischong: false, //冲按钮状态
    joinType: 0, //加入状态0不显示弹框 1成功加入，2申请已成功提交
    isJoinCallback: false, //加入局回调
    isGerent: false, //是否为主办者
    // juInvalidation:false, //局是否失效，true失效，false正常

    jubjstart: '', //局第二层背景 触摸开始的坐标点
    jubjnum: '', //局第二层背景 触摸结束的坐标点
    isjubjshow: false, //局第二层背景 是否销毁
    jubjIn: false, //局第二层背景 是否进来
    jubjOut: false, //局第二层背景 是否离开

    lastTapTime: 0, //双击卡片计时

    // avatarPath:'', //发布者头像
    userName: '', //发布者名称  wx.getStorageSync('userName')
    activityName: '', //局名称 wx.getStorageSync('activityName')
    activityId: '', //局ID  wx.getStorageSync('activityId')
    isShare: false, //是否分享，控制分享弹框
    isShowShareList: false, //分享渠道是否显示
    islike: false, //是否喜欢该局
    sharePopover: false, //分享弹框专用透明背景状态
    sharePopoverHome:false, //首页码卡片循环分享弹框专用状态
    goAppPopover: false, //进入有局app弹框状态

    convention: app.globalData.conventionInfo, //活动数据，局汇总上边需要的数据
    conferenceType:'',//1为大型活动，2为局
  },
  lifetimes: {
    attached: function (event) {
      // 在组件实例进入页面节点树时执行
    },
    detached: function () {
      // 在组件实例被从页面节点树移除时执行
    },
  },
  /**
   * 组件的方法列表
   */
  methods: {

     // 冲的事件
     onChong(event) {
      const {
        activityJoinType,
        activityId,
        conferenceType
      } = this.data;
      let than = this;

      // 使手机振动15ms
      wx.vibrateShort();

      if(wx.getStorageSync('status') == 0){
        //未注册的用户
      wx.navigateTo({
        url: '../login/login'
      })
      return false
      }
      if(wx.getStorageSync('status') == 9){
        //未注册的用户
      wx.navigateTo({
        url: '../releaseAvatar/releaseAvatar'
      })
      return false
      }

      //大型活动
      if(conferenceType == 1){
        wx.navigateTo({
          url: '../bureau/bureau?conventionId=' + activityId
        })
        return false 
      }

      //是否登录过
      if (wx.getStorageSync('status') != 0) { //0未登录
        //是否需要申请 0无需申请，1申请  isConfirmJoin: currentData.activityJoinType == 0 && !currentData.join,
        //是否安卓机
        if (!app.globalData.isiPhone) {
          wx.navigateTo({
            url: '../androidMessage/androidMessage'
          })
          return false
        }
        if (activityJoinType == 1) {
          this.setData({
            joinpopover: true,
            ischong: false
          })
        } else {
          this.setData({
            isConfirmJoin: true,
            ischong: false
          })
        }
      } else {
        wx.navigateTo({
          url: '../login/login'
        })
      }
      this.showmessage();
    },

    // 主页卡片分享
    activeClose() {
      this.setData({
        sharePopoverHome: false
      })
    },
    //卡片 手指触摸动作开始 记录起点X坐标
    touchstart: function (e) {
      this.start = e.changedTouches[0].clientY
    },
    //卡片 滑动事件处理
    touchmove: function (e) {},
    //卡片 手指离开
    touchend: function (e) {
      let than = this;
      this.num = e.changedTouches[0].clientY
      let number = this.start - this.num;

      if (number > 50) {
        this.setData({
          isIn: true
        });
        // setTimeout(() => {
        //   this.setData({
        //     isdestroy:true
        //   });
        // }, 1000);

      }
    },

    // 微信滚动框的一些事件
    //滚动到顶部
    upper(e) {
      this.setData({
        // isdestroy:false,
        isIn: false,
        // isout:false
      });
    },
    start_fn(e) {
      // debugger
      this.setData({
        start: e.changedTouches[0].pageY,
        // hiedRadius: true,  // 隐藏掉圆角
      })
      // console.log(e)
    },
    end_fn(e) {
      let that = this
      let end_fn = e.changedTouches[0].pageY
      if (end_fn > this.data.start) {
        that.setData({
          // isdestroy:false,
          isIn: false,
          isIn1: false,
          // isout:false
        });
      }
    },
    // //滚动到底部
    // lower(e) {
    //   // console.log(e)
    // },
    // //滚动时时计算
    // scroll(e) {
    //   // console.log(e)
    // },
    // start(e){
    //   // console.log('开始')
    //   // console.log(e)
    // },
    // end(e){
    //   // console.log('结束')
    //   // console.log(e)
    // },

    scrollToTop() {
      this.setAction({
        scrollTop: 0
      })
    },
    // tap() {
    //   for (let i = 0; i < order.length; ++i) {
    //     if (order[i] === this.data.toView) {
    //       this.setData({
    //         toView: order[i + 1],
    //         scrollTop: (i + 1) * 200
    //       })
    //       break
    //     }
    //   }
    // },

    // tapMove() {
    //   this.setData({
    //     scrollTop: this.data.scrollTop + 10
    //   })
    // },

    //背景 手指触摸动作开始 记录起点X坐标
    touchstartjubj: function (e) {

      this.jubjstart = e.changedTouches[0].clientY
    },
    //背景 手指离开
    touchendjubj: function (e) {
      this.jubjnum = e.changedTouches[0].clientY
      let number = this.jubjstart - this.jubjnum;
      if (number > 20) {
        //控制背景动画 离开
        this.setData({
          isConfirmJoin: false,
          jubjOut: true,
          joinType: 0,
          // ischong:true
        });
        setTimeout(() => {
          this.setData({
            isjubjshow: false
          });
        }, 500);
      }
    },
    //获取手机号
    getPhoneNumber(e) {
      // console.log(e)
    },
    //进入个人主页
    goHome(event) {
      let userid = event.currentTarget.dataset.userid;
      wx.navigateTo({
        url: '../czqathermain/czqathermain?userid=' + userid
      })
    },

    // 关闭事件
    _cardClose() {
      console.log('取消')
      //触发取消回调
      this.triggerEvent("cancelEvent")
    },
    // 分享事件
    _cardShare() {
      console.log('分享')
      // source:'', //来源：1是局详情页，2个人主页, 3局汇总, 4局首页,5循环
      if(this.data.source == 5){
        this.setData({
          sharePopoverHome: true
        })
      }else{
        this.setData({
          sharePopover: true
        })
      }
      //sharePopoverHome
      //触发取消回调
      // this.triggerEvent("cancelEvent")
    },
    //关闭分享事件
    closeShare() {
      this.setData({
        sharePopover: false,
        sharePopoverHome:false,
      })
    },

    //去局详情
    
    goPlayDetail(event) {
      const {
        activityJoinType,
        activityId,
        conferenceType
      } = this.data;
      let than = this;

      // 使手机振动15ms
      wx.vibrateShort();

      if(wx.getStorageSync('status') == 0){
        //未注册的用户
      wx.navigateTo({
        url: '../login/login'
      })
      return false
      }
      if(wx.getStorageSync('status') == 9){
        //未注册的用户
      wx.navigateTo({
        url: '../releaseAvatar/releaseAvatar'
      })
      return false
      }

      //大型活动
      if(conferenceType == 1){
        wx.navigateTo({
          url: '../bureau/bureau?conventionId=' + activityId
        })
        return false 
      }else{//局详情
        wx.navigateTo({
          url: '../czqhomedetail/czqhomedetail?activityId=' + activityId
        })

        return false
      }

      //是否登录过
      if (wx.getStorageSync('status') != 0) { //0未登录
        //是否需要申请 0无需申请，1申请  isConfirmJoin: currentData.activityJoinType == 0 && !currentData.join,
        //是否安卓机
        if (!app.globalData.isiPhone) {
          wx.navigateTo({
            url: '../androidMessage/androidMessage'
          })
          return false
        }
        if (activityJoinType == 1) {
          this.setData({
            joinpopover: true,
            ischong: false
          })
        } else {
          this.setData({
            isConfirmJoin: true,
            ischong: false
          })
        }
      } else {
        wx.navigateTo({
          url: '../login/login'
        })
      }
      this.showmessage();
    },
    //透明背景事件
    ontransparentBj() {
      this.setData({
        joinpopover: false,
        ischong: true,
        isShare: false,
        goAppPopover: false
      })
    },

    //分享弹框透明背景事件
    // onsharetransparentBj(){
    //   this.setData({
    //     isShare:false,
    //     sharePopover:false,
    //     isShowShareList:false,
    //   })
    // },

    //加入局
    getJoinActivity(event) {
      let than = this;
      wx.vibrateShort();
      //是否登录过
      if (wx.getStorageSync('userId')) {
        let data = {
          activityId: than.data.activityId,
          userId: wx.getStorageSync('userId') || '',
          nums: 1,
        }
        joinActivity(data).then(res => {

          //控制背景动画 显示
          than.setData({
            joinpopover: false,
            isConfirmJoin:false,
          })  
          console.log(than.data.activityJoinType)

          if (res.success) {
            //0无需申请，1申请
            if(than.data.activityJoinType == 0){
              wx.navigateTo({
                url: '../auditMessage/auditMessage?activityId='+than.data.activityId+'&status=2&source=1'
              })
            }else{
              wx.navigateTo({
                url: '../auditMessage/auditMessage?activityId='+than.data.activityId+'&status=0&source=1'
              })
            }
          }else{
              wx.showToast({
              title: res.message,
              icon: 'none',
              duration: 2000
            })
          }

          // if (res.success) {
          //   //控制背景动画 显示
          //   than.setData({
          //     joinpopover: false,
          //     // isjubjshow: true,
          //     // jubjOut: false,
          //     // jubjIn: true
          //   })
          //   // setTimeout(() => {
          //   //   than.setData({
          //   //     joinType: event.target.dataset.type,
          //   //     isJoinCallback: true
          //   //   })
          //   // }, 500);
          //   this.setData({
          //     isConfirmJoin:false,
          //     // isJoinCallback:true
          //   })

          // } else {
          //   wx.showToast({
          //     title: res.message,
          //     icon: 'none',
          //     duration: 2000
          //   })
          // }
        })
      } else {
        wx.navigateTo({
          url: '../login/login'
        })
      }
    },

    //  打开有局app弹框
    openApp() {
      console.log('打开有局app')

      //是否安卓机
      if(!app.globalData.isiPhone){
        wx.navigateTo({
          url: '../androidMessage/androidMessage'
        })
        return false
      }

      this.setData({
        goAppPopover: true
      })
    },
    launchAppError(e) {
      console.log(e)
    //复制文字到剪贴板
    launchAppCopy()
    },
    // 双击卡片
    getlike(e) {
      const {
        islike
      } = this.data;
      let curTime = e.timeStamp
      let lastTime = e.currentTarget.dataset.time // 通过e.currentTarget.dataset.time 访问到绑定到该组件的自定义数据
      if (curTime - lastTime > 0) {
        if (curTime - lastTime < 300) { //双击事件
          // this.setData({
          //   isShare:true,
          //   sharePopoer:true
          // })
          if (!islike) {
            this.getLikeOrZanConference()
          }
        }
      }
      this.setData({
        lastTapTime: curTime
      })
    },
    //喜欢局接口请求
    getLikeOrZanConference(code, img) {
      let than = this;
      const {
        islike
      } = than.data;
      let data = {
        conferenceId: than.data.activityId,
        conferenceType: 2, //1-活动 2-局
        type: 1, //1-喜欢 2-赞
        userId: wx.getStorageSync('userId'),
      }
      likeOrZanConference(data).then(res => {
        if (res.success) {
          than.setData({
            islike: islike ? false : true
          })
        } else {
          wx.showToast({
            title: res.message,
            icon: 'none',
            duration: 1000
          })
        }
      })

    },
    //分享图片下载到本地
    picDownload(e) {
      const {
        cardData
      } = this.data;
      let than = this;
      console.log('分享图片下载到本地')
      wx.downloadFile({
        url: cardData.shareImg,
        success(res) {
          console.log(res)
          let tempFilePath = res.tempFilePath
          
          wx.saveImageToPhotosAlbum({
            filePath: tempFilePath, // 此为图片路径
            success: (res) => {
              console.log('success')
              console.log(res)
              than.closeShare();
              wx.showToast({
                title: '图片已保存到相册',
                icon: 'none',
                duration: 1000
              })
            },
            fail: (err) => {
              console.log('fail')
              console.log(err)
                wx.showToast({
                  title: '保存失败，请稍后重试',
                  icon: 'none',
                  duration: 1000
                })
            }
        })
          
        }
      })
    },

    //模板消息授权
    showmessage(e) {
      console.log(e)
      wx.requestSubscribeMessage({
        tmplIds: ['532UuP9jK6G7QnHaXrOeOfePXlrHXVwQTrQWfTljpo4','Hl7_W9R8X5qaAhXIcSNJYx6ojcBLrjGtlNCQGfpkMTQ'],
        success(res) {
          console.log(res)
          if (res['532UuP9jK6G7QnHaXrOeOfePXlrHXVwQTrQWfTljpo4','Hl7_W9R8X5qaAhXIcSNJYx6ojcBLrjGtlNCQGfpkMTQ'] == 'accept') { //accept--用户同意 reject--用户拒绝 ban--微信后台封禁,可不管
            console.log('用户同意')
          }
        },
        fail(res) {
          console.log(res)
        }
      }, )
    },
    //分享小图标事件
    // showShareList(){
    //   this.setData({
    //     isShowShareList:true
    //   })
    // },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function (res) {

    },



  }
})